Microprocessor-based circuits are used in a large variety of applications to perform many different functions. For example, a microprocessor-based circuit can be used as a central processing unit in a computer or as a dedicated controller for a computer's input/output circuitry. An embedded microprocessor-based circuit can be used to control the operation of an appliance such as a water softener, refrigerator or microwave oven. Other applications of these versatile circuits will be apparent to a person of skill in the art.
Microprocessor-based circuits interface with "realworld" and internal system signals using input and output pins. Pins may be provided on the microprocessor itself, or on interface circuits in communication with the microprocessor. For example, a Z86C30 microprocessor provides 24 pins dedicated to input and output functions. However, as advances in integrated circuit design have made it possible to control more signal lines within a chip, the number of available input and output pins on integrated circuit packages has become a limitation on the design of microprocessor-based circuits. The pins available can determine the type of microprocessor that can be used for a given application and the number of interface circuits which must be provided, thereby affecting the number of features the circuit can provide as well as product cost.
Microprocessor-based circuits commonly include peripherals which provide communication and auxiliary functions (e.g., display drivers, interfaces, memories, A/D converters). A microprocessor typically communicates with peripherals over a multi-wire parallel or serial bus which may accommodate several peripherals. If only one peripheral is on a bus, a microprocessor can communicate with the peripheral with no ambiguity. However, if more than one peripheral is on a bus, the circuit must be designed to allow a microprocessor to unambiguously address a particular peripheral.
Several designs enable a microprocessor to address a particular peripheral over a bus. In one design, each peripheral on a bus is assigned a unique address. To communicate with a particular peripheral, the microprocessor specifies the peripheral's unique device address. An address decode circuit uses the unique device address to generate a signal to select or enable the desired peripheral. The selected peripheral can then communicate with the microprocessor. In addition, an address decode circuit may include configuration inputs which selectively change the device address of a particular peripheral. For example, configuration inputs could be used to change the device address of a memory device. The address decode circuit could use the configuration inputs to generate appropriate select signals to the memory device.
In another design, such as that of the "I.sup.2 C" bus (a standard serial interface used by a family of devices sold by companies such as Philips, Signetics, Exel and Microchip Technology), each peripheral type is assigned a unique device code (e.g., the unique device code of a non-volatile memory is 1010.sub.2). The pre-assigned device code is built into each peripheral and cannot be changed. To initiate communication with a peripheral on a bus with only a single peripheral of that type, a microprocessor specifies the peripheral's unique device code and only the desired peripheral will respond. However, to accommodate a bus with several peripherals of the same type, peripherals have several device address inputs which can be set by hardware to logic high or low (e.g., the 24C01A EEPROM has three device address inputs). The microprocessor initiates communication with a peripheral by specifying an address in addition to the device code and only the desired peripheral will respond.
It is possible for a microprocessor-based circuit to operate regardless of the state of configuration inputs which selectively change the device address of a particular peripheral, or for the circuit to use only one peripheral of a given type. For example, a circuit may allow a memory device to be accessed at different device addresses, or the circuit may use only a single EEPROM device. In these cases, the configuration inputs or device address inputs can be set to any state provided the microprocessor is programmed to access the peripheral at the correct device address. In this respect, the configuration inputs and device address inputs have no functional purpose in the circuit.
Accordingly, it would be desirable to provide a processing system wherein configuration inputs and device address inputs not needed to set a configuration or a peripheral's device address are used to increase the input capability of a processor. It would also be desirable to provide a processing system wherein the configuration inputs to an address decoder or device address inputs to a peripheral device can be set to a logic high or low through the use of a switch, jumper wire, dual in-line package (DIP) switch, etc. and read by a microprocessor.